package com.xl.domain.pojo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.xl.annotation.ExcelPropertyCheck;
import com.xl.constants.ExcelPropertyTypeConstants;
import lombok.Data;

import java.io.Serializable;

/***
 * 这个类和Device的属性名完全一样，但是masterSlaveId 变成了String类型
 * 如果不创建，解析excel的时候，excel单元格里面的数据是String（下拉菜单选择的），但是 对象中的是Integer这个时候就转换失败，masterSlaveId值为默认值0
 */
@Data
public class DeviceTo implements Serializable {

    /***
     * 忽略字段
     */
    @ExcelIgnore
    private String ignore;
    /**
     *
     */
    @ExcelProperty(value = "设备ID", index = 0)
    private Long id;
    /**
     * 设备类型1=PCF,2=DNS,3=MC,4=MDS,5=5G-IN,6=MSC,7=FAS,8=UPF
     */
    @ExcelProperty(value = "设备类型", index = 1)
    @ExcelPropertyCheck(propertyName = "设备类型", checkBlank = true)
    private String deviceType;
    /**
     * 设备编号必须要是4位数
     */
    @ExcelProperty(value = "设备编号", index = 2)
    @ExcelPropertyCheck(propertyName = "设备编号", checkBlank = true, checkLength = 4) //非空检查，且长度为4
    private String deviceCode;
    /**
     * 设备名称
     */
    @ExcelProperty(value = "设备名称", index = 3)
    @ExcelPropertyCheck(propertyName = "设备名称", checkBlank = true)
    private String deviceName;
    /**
     * 主备 1-主 0-备，如果解析的时候excel传过来的是一个String，我这里是Integer，这个时候就会给默认值是0。
     */
    @ExcelProperty(value = "主备类型", index = 4)
    @ExcelPropertyCheck(propertyName = "主备类型", checkBlank = true)
    private String masterAndSlave;
    /**
     * 域名
     */
    @ExcelProperty(value = "域名", index = 5)
    @ExcelPropertyCheck(propertyName = "域名", checkBlank = true)
    private String domainName;
    /**
     * 设备IP地址
     */
    @ExcelProperty(value = "设备IP", index = 6)
    @ExcelPropertyCheck(propertyName = "设备IP", checkBlank = true, checkRegex = ExcelPropertyTypeConstants.IP_VALUE)
    //非空和ip格式检查
    private String ipAddress;

}
